查看原文
其他

有魔性的图来一发

2017-07-31 Y叔 biobabble

不知不觉中我已经介绍了很多R包,有学术上的ChIPseekertreeioggtreeclusterProfilerGOSemSimseqcomboMSnbase等,当然免不了有吐槽还有抄袭有学R的更新R包,也有桌面小工具,还有画图的ggplot2怎么配色嵌入图片(比如pokemon), 以及emoji作图,也有好玩的贴纸装逼利器


今天要介绍另外一个R包,magick,是R里面玩图片的利器,今天要讲的是在静态图片上加动态图片,这样我们平时画一些学术的图,就可以加点搞笑的动态元素上去,有利于在博客和公众号上装逼。

无非是给我一张静态图当背景,再来一张动态图加在上面,为了让代码可以重用,首先打包个小函数:

add_gif <- function(bg_file, gif_file, out_file, offset, bg_size="500", gif_size="150") {    library(magick)    p <- image_read(bg_file)    g <- image_read(gif_file)    g <- image_scale(g, gif_size)    background <- image_background(image_scale(p, bg_size), "white", flatten = TRUE)    frames <- lapply(g, function(frame) {          image_composite(background, frame, offset = offset)    })    animation <- image_animate(image_join(frames))    image_write(animation, out_file) }

然后就可以来玩了,首先用上次讲到的dotplot做为底图,再从网上找一个动图,调用函数,bingo:

bg_file <-  "dotplot_ggplot.png" gif_file <- "http://mrwgifs.com/wp-content/uploads/2014/11/HQ-Carlton-Dance-With-a-Transparent-Background-Gif-From-The-Fresh-Prince-Of-Bel-Air.gif" add_gif(bg_file, gif_file, "dotplot_ggplot2.gif", "+160+350")


第二个实例,用的也是clusterProfiler出的图,这个是enrichMap,依然从网上找一个动图加上去:

f1 <- "https://raw.githubusercontent.com/GuangchuangYu/clusterProfiler/master/vignettes/figures/enrichMap.png" f2 <- "https://raw.githubusercontent.com/batpigandme/arch_dossiers/master/img/cheryl_blowup_no_bg.gif" add_gif(f1, f2, "enrichMap_animation.gif", "+350+200")

  • 你也来试试,让我们平时做科研画图多一点小乐趣。

  • 让我们写博客,发公众号,来点逼格。装点十三。

  • 中国人最不缺的就是斗图素材,走你。

总有一款让你流连~

为什么我们喜欢包?因为包治百病啊!

我介绍的包,要么好用,要么好玩,历史好文,值得重温:

赞赏

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存